import { IPSDataEntity } from '../ipsdata-entity';
import { IPSDELogicNode } from './ipsdelogic-node';
import { IPSDELogicParam } from './ipsdelogic-param';
import { IPSDEPrint } from '../print/ipsdeprint';

/**
 *
 * 继承父接口类型值[DEPRINT]
 * @export
 * @interface IPSDEDEPrintLogic
 */
export interface IPSDEDEPrintLogic extends IPSDELogicNode {
  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get dstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParamMust(): IPSDELogicParam;

  /**
   * 目标实体打印对象
   *
   * @type {IPSDEPrint}
   */
  getDstPSDEPrint(): IPSDEPrint | null;

  /**
   * 目标实体打印对象
   *
   * @type {IPSDEPrint}
   */
  get dstPSDEPrint(): IPSDEPrint | null;

  /**
   * 目标实体打印对象（必须存在）
   *
   * @type {IPSDEPrint}
   */
  getDstPSDEPrintMust(): IPSDEPrint;

  /**
   * 目标实体对象
   *
   * @type {IPSDataEntity}
   */
  getDstPSDataEntity(): IPSDataEntity | null;

  /**
   * 目标实体对象
   *
   * @type {IPSDataEntity}
   */
  get dstPSDataEntity(): IPSDataEntity | null;

  /**
   * 目标实体对象（必须存在）
   *
   * @type {IPSDataEntity}
   */
  getDstPSDataEntityMust(): IPSDataEntity;

  /**
   * 输出流逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getOSPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 输出流逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get oSPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 输出流逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getOSPSDELogicParamMust(): IPSDELogicParam;
}
